ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Инженеру
Чек-лист самопроверки
- Объясните, что такое адрес в памяти и как он используется процессором.
- Опишите разницу между физическим и виртуальным адресом.
- Укажите, как Memory Management Unit (MMU) преобразует виртуальный адрес в физический.
- Перечислите компоненты, на которые разделяется физический адрес при обращении к DRAM.
- Объясните, почему минимальной адресуемой единицей в современных системах является байт.
- Опишите, как ширина адресной шины влияет на объём адресуемой памяти.
- Сравните сегментную и страничную модели адресации.
- Объясните, как работает механизм выравнивания данных и зачем он нужен.
- Опишите роль контроллера памяти в управлении доступом к RAM.
- Объясните, как кэш-память ускоряет доступ к данным и какие уровни кэша существуют.
- Укажите, из каких полей состоит адрес при обращении к многоуровневому кэшу.
- Объясните, что такое пространственная и временная локальность и как они влияют на производительность.
- Опишите, как работают указатели в языках низкого уровня и какие риски они несут.
- Объясните, как обеспечивается согласованность кэшей в многоядерных системах.
- Перечислите механизмы безопасности, основанные на адресном пространстве (ASLR, NX bit и др.).
- Определите, что такое бит, и опишите его физические реализации.
- Объясните, чем P-бит отличается от классического бита и где он применяется.
- Опишите принцип квантовой суперпозиции и как он реализуется в кубите.
- Укажите, почему кубиты требуют особых условий для работы.
- Объясните, что такое машинное слово и как его размер связан с архитектурой процессора.
- Различайте явное и неявное преобразование типов данных.
- Опишите, какие ошибки могут возникнуть при преобразовании строки в число.
- Объясните, что такое парсинг и приведите пример его применения.
- Перечислите основные арифметические, побитовые и математические операции над числами.
- Объясните, как работают операторы инкремента и декремента в циклах.
- Опишите, как генерируются псевдослучайные числа и где они используются.
- Различайте подстроку, подпоследовательность и подмножество символов.
- Объясните, как работает конкатенация строк и какие подводные камни она может иметь.
- Опишите операции поиска, замены, разделения и склейки строк.
- Объясните, зачем выполняется обрезка пробелов при обработке пользовательского ввода.
- Перечислите основные предикаты для проверки строк (startWith, isEmpty и др.).
- Опишите три способа форматирования строк: позиционное, именованное, интерполяция.
- Объясните, что такое поток данных и как он отличается от обычного файла.
- Опишите, как буферизация повышает эффективность чтения и записи.
- Объясните, зачем используется кодирование Base64 и как оно работает.
- Опишите разницу между сжатием с потерями и без потерь на примере медиаформатов.
- Объясните, как работает хеширование и где оно применяется.
- Опишите разницу между поверхностным и глубоким копированием объектов.
- Объясните, как выполняется сравнение объектов по ссылке и по значению.
- Опишите, как итерация работает для массивов, словарей и объектов.
- Объясните, как сериализация и десериализация используются при передаче объектов.
- Опишите, как выполняется валидация схемы объекта.
- Объясните, как представляется дата и время в программных системах.
- Опишите, как учитываются часовые пояса и переходы на летнее время.
- Объясните, почему вычисление разницы между датами в месяцах может быть неточным.
- Опишите, как работает форматирование и парсинг дат в разных локалях.
- Объясните, что такое маршалинг и чем он отличается от сериализации.
- Опишите, почему маршалинг необходим при межпроцессном взаимодействии.
- Перечислите преимущества и недостатки текстовых (JSON/XML) и двоичных (protobuf) форматов.
- Объясните, как решаются проблемы циклических ссылок при маршалинге графов объектов.